package org.jctc.els.modules.biz.service.message;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jctc.els.modules.biz.entity.message.Message;
import org.jctc.els.modules.biz.entity.message.MessageExpand;

/**
 * <p>
 * 消息表 服务类
 * </p>
 *
 * @author lyh
 * @since 2021-02-26
 */
public interface IMessageService {


    /**
     * 添加消息表
     *
     * @author lyh
     * @since 2021-02-26
     * @param message 消息表
     * @return int
     */
    boolean save(MessageExpand messageExpand);

    /**
     * 删除消息表
     *
     * @author lyh
     * @since 2021-02-26
     * @param id 主键
     * @return int
     */
    boolean remove(Long id);

    /**
     * 修改消息表
     *
     * @author lyh
     * @since 2021-02-26
     * @param message 消息表
     * @return int
     */
    boolean edit(MessageExpand message);

    /**
    * 查询消息表分页数据
    *
    * @author lyh
    * @since 2021-02-26
    * @param pageNum      页码
    * @param pageSize 每页条数
    * @param title
     * @param messageTypeCode
     * @return Page<Message>
    */
    Page<MessageExpand> selectListByPage(Integer pageNum, Integer pageSize, String title, String messageTypeCode, Long schoolId);

    /**
     * 根据id查询数据
     *
     * @author lyh
     * @since 2021-02-26
     * @param id id
     * @return Message
     */
    MessageExpand selectById(Long id);

    boolean releaseMessage(MessageExpand messageExpand);

    boolean allRead(Long userId);

    boolean deleteMessage(Long id, Long userId);

    Page<MessageExpand> selectMessageByUserId(Integer pageNum, Integer pageSize, String title, String messageTypeCode, Long userId);

    Boolean saveMessage(Message message);
}
